// get_arg.h
//

#if !defined(GETARG_H)
#define GETARG_H

#include <string>
//#include <iosfwd>
#include <sstream>
#include <iostream>
#include <fstream>

#include <program_options_helper.h>

class t_program_args : public program_options_helper::t_std_program_args_with_errors
{
public:

	// regular expression
	std::string		regex_str;

	// tag name for database e.g. SPROT, nr
	std::string		db_origin;

	// fasta file
	std::ifstream	fasta_db;
	std::string		fasta_path;
	std::string		fasta_name;
	std::string		default_taxid;
	bool			recreate_indices;
	bool			vacuum;
	bool			orphans;

	// database login string
	std::string		db_login;

	// for initializing this struct
	friend
	bool process_command_line_options(int argc, char* argv[], t_program_args& args);
};


bool process_command_line_options(int argc, char* argv[], t_program_args& args);
#endif //GETARG_H
